package com.heer.gymnasium.api;


import com.heer.gymnasium.api.ResponseData.ApiResponse;
import com.heer.gymnasium.api.constants.IConstants;
import com.heer.gymnasium.module.advise.beans.AdMainBean;
import com.heer.gymnasium.module.article.beans.ArticleDetailBean;
import com.heer.gymnasium.module.article.beans.ArticleFirstBean;
import com.heer.gymnasium.module.article.beans.ArticleResponseBean;
import com.heer.gymnasium.module.article.beans.EvaluateBean;
import com.heer.gymnasium.module.article.beans.StadiumBannerInfoBean;
import com.heer.gymnasium.module.card.beans.CardInfoResponseBean;
import com.heer.gymnasium.module.card.beans.CardListResponseBean;
import com.heer.gymnasium.module.card.beans.CardResponseBean;
import com.heer.gymnasium.module.card.beans.StadiumCardResponsebean;
import com.heer.gymnasium.module.coach.beans.CoachOrderBean;
import com.heer.gymnasium.module.coach.beans.CoachResponseBean;
import com.heer.gymnasium.module.coach.beans.StatisticsResponseBean;
import com.heer.gymnasium.module.common.beans.GlobeBean;
import com.heer.gymnasium.module.evaluate.beans.EvaTagBean;
import com.heer.gymnasium.module.evaluate.beans.MemberListResponseBean;
import com.heer.gymnasium.module.evaluate.beans.UserTagResponseBean;
import com.heer.gymnasium.module.fellow.beans.MatchResponseBean;
import com.heer.gymnasium.module.login.beans.ForgetPasswordBean;
import com.heer.gymnasium.module.login.beans.LoginBean;
import com.heer.gymnasium.module.login.beans.LoginResponseBean;
import com.heer.gymnasium.module.login.beans.RegisterBean;
import com.heer.gymnasium.module.login.beans.VerificationBean;
import com.heer.gymnasium.module.login.beans.WxLoginBean;
import com.heer.gymnasium.module.main.beans.BannerResponseBean;
import com.heer.gymnasium.module.main.beans.CategoryBean;
import com.heer.gymnasium.module.main.beans.FellowListResponseBean;
import com.heer.gymnasium.module.message.beans.MsgListResponseBean;
import com.heer.gymnasium.module.my.beans.CollectResponseBean;
import com.heer.gymnasium.module.my.beans.FaceBean;
import com.heer.gymnasium.module.my.beans.UserBean;
import com.heer.gymnasium.module.order.beans.CardDetialResponseBean;
import com.heer.gymnasium.module.order.beans.OrderInfoResponseBean;
import com.heer.gymnasium.module.order.beans.OrderResponseBean;
import com.heer.gymnasium.module.order.beans.OrderResponseListBean;
import com.heer.gymnasium.module.reservation.beans.ReservationBookItemResponseBean;
import com.heer.gymnasium.module.reservation.beans.ReservationItemResponseBean;
import com.heer.gymnasium.module.store.beans.AreaBean;
import com.heer.gymnasium.module.store.beans.CourseResponseBean;
import com.heer.gymnasium.module.store.beans.StoreResponseBean;
import com.heer.gymnasium.module.message.beans.NewMsgNumBean;
import com.heer.gymnasium.module.team.beans.ActivityHistoryResponseBean;
import com.heer.gymnasium.module.team.beans.TeamMemberResponseBean;
import com.heer.gymnasium.module.team.beans.TeamResponseBean;
import com.heer.gymnasium.wxapi.beans.WxPayBean;

import java.util.List;

import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;

/**
 * Created by rzw2 on 2016/7/22.
 */
public interface ApiService {


    /**
     * 登录
     *
     * @param mobile   手机号
     * @param password 密码
     * @return LoginBean
     */
    @FormUrlEncoded
    @POST(IConstants.LOGIN)
    Call<ApiResponse<LoginBean>> toLogin(@Field("mobile") String mobile,
                                         @Field("password") String password,
                                         @Field("unionid") String unionid);

    /**
     * 登录
     *
     * @param mobile   手机号
     * @param password 密码
     * @return LoginBean
     */
    @FormUrlEncoded
    @POST(IConstants.LOGIN)
    Call<ApiResponse<LoginBean>> toLogin(@Field("mobile") String mobile,
                                         @Field("password") String password);

    /**
     * 注册
     *
     * @param mobile
     * @param password
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.REGISTER)
    Call<ApiResponse<RegisterBean>> toRegister(@Field("mobile") String mobile,
                                               @Field("password") String password,
                                               @Field("code") String code,
                                               @Field("unionid") String unionid);


    /**
     * 微信登录
     *
     * @param unionid
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.WXLOGIN)
    Call<ApiResponse<LoginBean>> toLoginByWx(@Field("unionid") String unionid);

    /**
     * 发送验证码
     *
     * @param mobile
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.VERIFICATION_CODE)
    Call<ApiResponse<VerificationBean>> sendVerificationCode(@Field("mobile") String mobile);


    /**
     * 退出登录
     *
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.LOGIN_OUT)
    Call<ApiResponse<LoginBean>> toLogout(@Field("userId") String userId);


    /**
     * 修改密码
     *
     * @param oldpass
     * @param newpass
     * @param newpass1
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.EDIT_PASSWORD)
    Call<ApiResponse> updateUserPassword(@Field("oldpass") String oldpass,
                                         @Field("newpass") String newpass,
                                         @Field("newpass1") String newpass1);

    /**
     * 找回密码
     *
     * @param mobile
     * @param password
     * @param repassword
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.FORGET_PASSWORD)
    Call<ApiResponse<ForgetPasswordBean>> forgetPassword(@Field("mobile") String mobile,
                                                         @Field("password") String password,
                                                         @Field("repassword") String repassword,
                                                         @Field("code") String code);


    /**
     * @param apid 广告位id 22==上面 23=＝中间
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.AD_MAIN)
    Call<ApiResponse<List<AdMainBean>>> getMainAd(@Field("apid") String apid);

    /**
     * 获得新消息数量
     *
     * @param token
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.USER_NEWMSGNUM)
    Call<ApiResponse<NewMsgNumBean>> getMsgNewNum(@Field("token") String token);
//三期

    @FormUrlEncoded
    @POST(IConstants.CONFIGS_GETBANNERLIST)
    Call<ApiResponse<List<BannerResponseBean>>> getBannerList(@Field("ad_position_id") String ad_position_id);

    /**
     * 获取文章列表
     *
     * @param cate_id
     * @param is_hot
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.AETICLE_GETARTIVLELIST)
    Call<ApiResponse<ArticleResponseBean>> getArticleList(@Field("cate_id") String cate_id, @Field("is_hot") String is_hot, @Field("page") String page);

    @FormUrlEncoded
    @POST(IConstants.AETICLE_ADDARTICLEREPLY)
    Call<ApiResponse<String>> getAddArticleReply(@Field("article_id") String articleId, @Field("content") String content);

    /**
     * 报名
     *
     * @param articleId
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ARTICLE_DOENROLL)
    Call<ApiResponse<String>> doEnroll(@Field("article_id") String articleId);


    /**
     * 获取体育馆列表
     *
     * @param is_nearby
     * @param page
     * @param la
     * @param lo
     * @param category_id
     * @param adcode
     * @param keyword
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.STADIUMS_GETSTADIUMLIST)
    Call<ApiResponse<StoreResponseBean>> getStadiumList(@Field("is_nearby") String is_nearby,
                                                        @Field("page") String page,
                                                        @Field("la") String la,
                                                        @Field("lo") String lo,
                                                        @Field("category_id") String category_id,
                                                        @Field("adcode") String adcode,
                                                        @Field("keyword") String keyword);

    /**
     * 店铺
     *
     * @param stadium_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.STADIUMS_GETSTADIUM)
    Call<ApiResponse<StoreResponseBean.Item>> getStadium(@Field("stadium_id") String stadium_id);

    /**
     * 店铺信息
     *
     * @param stadium_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.STADIUMS_GETSTADIUMINFO)
    Call<ApiResponse<StoreResponseBean.Info>> getStadiumInfo(@Field("stadium_id") String stadium_id);

    /**
     * 约战/拼单店铺列表
     *
     * @param la
     * @param lo
     * @param adcode
     * @param category_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.STADIUMS_GETYPSTADIUMLIST)
    Call<ApiResponse<StoreResponseBean>> getYPStadiumList(@Field("la") String la,
                                                          @Field("lo") String lo,
                                                          @Field("adcode") String adcode,
                                                          @Field("category_id") String category_id);

    /**
     * 集体课列表
     *
     * @param stadium_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COURSE_COURSELIST)
    Call<ApiResponse<List<GlobeBean.Tag>>> getCourseList(@Field("sid") String stadium_id);

    /**
     * 集体课时间列表
     *
     * @param course_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COURSE_COURSETIMELIST)
    Call<ApiResponse<CourseResponseBean>> getCourseTimeList(@Field("id") String course_id);

    /**
     * 获取私教列表
     *
     * @param is_hot
     * @param sid
     * @param is_index
     * @param page
     * @param adcode
     * @param category_id
     * @param keyword
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COACH_GETCOACHLIST)
    Call<ApiResponse<CoachResponseBean>> getCoachList(@Field("is_hot") String is_hot,
                                                      @Field("sid") String sid,
                                                      @Field("is_index") String is_index,
                                                      @Field("page") String page,
                                                      @Field("adcode") String adcode,
                                                      @Field("category_id") String category_id,
                                                      @Field("keyword") String keyword);

    /**
     * 私教核销
     *
     * @param base64Url
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COACH_DESTROYCOACH)
    Call<ApiResponse<Object>> destroyCoach(@Field("base64Url") String base64Url, @Field("type") String type);

    /**
     * @param coach_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COACH_GETCOACH)
    Call<ApiResponse<CoachResponseBean.Item>> getCoach(@Field("coach_id") String coach_id);

    /**
     * 获取私教购买详情
     *
     * @param coach_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COACH_GETCOACHORDERINDFO)
    Call<ApiResponse<CoachOrderBean>> getCoachOrderInfo(@Field("coach_id") String coach_id);

    /**
     * 获取广告
     *
     * @param ad_position_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CONFIGS_GETAD)
    Call<ApiResponse<AdMainBean>> getAd(@Field("ad_position_id") String ad_position_id);

    /**
     * 获取咨询banner第一个
     *
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CONFIGS_GETARTICLEFIRST)
    Call<ApiResponse<ArticleFirstBean>> getArticleFirst(@Field("key") String key);

    /**
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CONFIGS_GETAREALIST)
    Call<ApiResponse<List<AreaBean>>> getAreaList(@Field("key") String key);

    /**
     * 店铺运动类型
     *
     * @param flag
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CONFIGS_GETCATEGORYLIST)
    Call<ApiResponse<List<CategoryBean>>> getCategoryList(@Field("flag") String flag);

    /**
     * 获得文章详细信息
     *
     * @param article_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ARTICLE_GETARTICLE)
    Call<ApiResponse<ArticleDetailBean>> getArticle(@Field("article_id") String article_id);

    /**
     * 获取文章
     *
     * @param article_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ARTICLE_GETREPLYLIST)
    Call<ApiResponse<EvaluateBean>> getReplyList(@Field("article_id") String article_id, @Field("page") String page);

    /**
     * 获取用户信息
     *
     * @param token
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_USERINFO)
    Call<ApiResponse<UserBean>> getuserInfo(@Field("token") String token);

    /**
     * 登录发送验证码
     *
     * @param phone
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_GETPHONECODE)
    Call<ApiResponse<Object>> getPhoneCode(@Field("mobile") String phone);

    /**
     * 登录
     *
     * @param phone
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_LOGINAPP)
    Call<ApiResponse<LoginResponseBean>> loginApp(@Field("mobile") String phone, @Field("code") String code);


    /**
     * 获得我的卡包列表
     *
     * @param type 21:会员卡,11:入场券,41:私教课
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETMYCARDLIST)
    Call<ApiResponse<CardResponseBean>> getMyCardList(@Field("type") String type);

    /**
     * 我的卡包--私教课列表
     *
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SOURSE_MYCOURSELIST)
    Call<ApiResponse<CardResponseBean>> myCourseList(@Field("page") String page);

    /**
     * 我的卡包--充值卡
     *
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETMYRECHARGECARDLIST)
    Call<ApiResponse<CardResponseBean>> getMyRechargeCardList(@Field("page") String page);


    /**
     * 订单列表
     *
     * @param type 1:未付款，2：已付款,不传/0全部
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETMORDERLIST)
    Call<ApiResponse<OrderResponseListBean>> getOrderList(@Field("type") String type, @Field("page") String page);

    /**
     * 收藏列表
     *
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETFOUCUSLIST)
    Call<ApiResponse<CollectResponseBean>> getFocusList(@Field("type") String type);


    @FormUrlEncoded
    @POST(IConstants.FOCUS_DO_FOCUS)
    Call<ApiResponse<String>> doFocus(@Field("type") String type, @Field("id") String id);

    /**
     * 修改用户信息
     *
     * @param birthday
     * @param weight
     * @param height
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCIBER_SETUSERINFO)
    Call<ApiResponse<String>> setUserInfo(@Field("birthday") String birthday,
                                          @Field("weight") String weight,
                                          @Field("height") String height,
                                          @Field("nickname") String nickname,
                                          @Field("sex") String sex,
                                          @Field("tag_me") String tag_me);

    /**
     * 获取用户面部识别图片
     *
     * @param token
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCIBER_GETUSERFACEPHOTO)
    Call<ApiResponse<FaceBean>> getUserFacePhoto(@Field("token") String token);

    /**
     * 面部识别
     *
     * @param base64Url
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCIBER_FACECHECK)
    Call<ApiResponse<String>> facecheck(@Field("base64Url") String base64Url, @Field("type") String type);

    /**
     * 获取购买充值卡详情
     *
     * @param sid
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETRECHARGECARDINFO)
    Call<ApiResponse<List<CardDetialResponseBean>>> getRechargeCardInfo(@Field("sid") String sid);

    /**
     * @param order_type 1:订一个场地,2:定多个场地,3:充值,4:购卡,5:私教，6:约战
     * @param is_auto    1：自动续订
     * @param place_id
     * @param start_time
     * @param end_time
     * @param plan_info  排期，多个场地订场/约战时不可为空，格式为json数组，字段为place_id、start_time、end_time
     * @param card_id
     * @param coach_id
     * @param num
     * @param corps_id
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_ADDORDER)
    Call<ApiResponse<OrderResponseBean>> addOrder(@Field("order_type") String order_type,
                                                  @Field("place_id") String place_id,
                                                  @Field("start_time") String start_time,
                                                  @Field("end_time") String end_time,
                                                  @Field("plan_info") String plan_info,
                                                  @Field("card_id") String card_id,
                                                  @Field("coach_id") String coach_id,
                                                  @Field("num") String num,
                                                  @Field("corps_id") String corps_id,
                                                  @Field("order_id") String order_id,
                                                  @Field("order_num") String order_num,
                                                  @Field("info") String info,
                                                  @Field("category_id") String category_id,
                                                  @Field("fight_show") String fight_show);

    /**
     * 订单付款
     *
     * @param order_id
     * @param pay_type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_PAYORDER)
    Call<ApiResponse<Boolean>> payOrder(@Field("order_id") String order_id,
                                        @Field("pay_type") String pay_type);

    /**
     * 调起订单支付宝付款
     *
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_GETALIPAYORDERINFO)
    Call<ApiResponse<String>> getAlipayOrderInfo(@Field("order_id") String order_id);

    /**
     * 获取订单详情
     *
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_GETORDERINFO)
    Call<ApiResponse<OrderInfoResponseBean>> getOrderInfo(@Field("order_id") String order_id);

    /**
     * 获取订单详情
     *
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_CANCELORDER)
    Call<ApiResponse<String>> cancelOrder(@Field("type") String type,
                                          @Field("order_id") String order_id,
                                          @Field("detail_id") String detail_id);

    /**
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETCARDINLIST)
    Call<ApiResponse<CardResponseBean>> getCardInList(@Field("page") String page);

    /**
     * @param card_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETSHARECARDINFO)
    Call<ApiResponse<StadiumCardResponsebean>> getShareCardInfo(@Field("card_id") String card_id);

    /**
     * @param card_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETMYCARDINFO)
    Call<ApiResponse<CardInfoResponseBean>> getMyCardInfo(@Field("card_id") String card_id);

    /**
     * @param sid
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETCARDLIST)
    Call<ApiResponse<CardListResponseBean>> getCardList(@Field("sid") String sid);


    /**
     * 我的战队列表
     *
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_GETMYCORPSLIST)
    Call<ApiResponse<TeamResponseBean>> getMyCorpsList(@Field("page") String page);

    /**
     * 创建战队
     *
     * @param key         //更换了请求类型 需要单独添加公共信息
     * @param token       //同上
     * @param unixtime    //同上 +1
     * @param corps_name
     * @param category_id
     * @param RequestBody
     * @param tag_list
     * @param logo
     * @return
     */
    @Multipart
    @POST(IConstants.CORPS_ADDCORPS)
    Call<ApiResponse<Object>> addCorps(@Part("key") RequestBody key,
                                       @Part("token") RequestBody token,
                                       @Part("unixtime") RequestBody unixtime,
                                       @Part("corps_name") RequestBody corps_name,
                                       @Part("category_id") RequestBody category_id,
                                       @Part("decl") RequestBody RequestBody,
                                       @Part("tag_list") RequestBody tag_list,
                                       @Part("logo\"; filename=\"logo.jpg") RequestBody logo);


    /**
     * 编辑战队
     *
     * @param key
     * @param token
     * @param unixtime
     * @param corps_id
     * @param corps_name
     * @param category_id
     * @param RequestBody
     * @param tag_list
     * @param logo
     * @return
     */
    @Multipart
    @POST(IConstants.CORPS_SAVECORPS)
    Call<ApiResponse<Object>> saveCorps(@Part("key") RequestBody key,
                                        @Part("token") RequestBody token,
                                        @Part("unixtime") RequestBody unixtime,
                                        @Part("corps_id") RequestBody corps_id,
                                        @Part("corps_name") RequestBody corps_name,
                                        @Part("category_id") RequestBody category_id,
                                        @Part("decl") RequestBody RequestBody,
                                        @Part("tag_list") RequestBody tag_list,
                                        @Part("logo\"; filename=\"logo.jpg") RequestBody logo);

    /**
     * 战队详情
     *
     * @param corpsId
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_GETCORPSINFO)
    Call<ApiResponse<TeamResponseBean.Info>> getCorpsInfo(@Field("corps_id") String corpsId);

    /**
     * 获取战队成员列表
     *
     * @param corpsId
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_GETCORPSMEMBERLIST)
    Call<ApiResponse<TeamMemberResponseBean>> getCorpsMemberList(@Field("corps_id") String corpsId, @Field("page") String page);

    /**
     * 退出战队
     *
     * @param corpsId
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_QUITCORPS)
    Call<ApiResponse<Object>> quitCorps(@Field("corps_id") String corpsId);

    /**
     * 队长转让
     *
     * @param corpsId
     * @param captain_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_CHANGECAPTAIN)
    Call<ApiResponse<Object>> changeCaptain(@Field("corps_id") String corpsId, @Field("captain_id") String captain_id);

    /**
     * 移除队员
     *
     * @param corpsId
     * @param member_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_DELETEMEMBER)
    Call<ApiResponse<Object>> deleteMember(@Field("corps_id") String corpsId, @Field("member_id") String member_id);

    /**
     * @param card_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETCARDINFO)
    Call<ApiResponse<CardListResponseBean.Item>> getCardInfo(@Field("card_id") String card_id);


    /**
     * 获取时间排期列表
     *
     * @param cateId
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.PLAN_GETBOOKINTTIMELIST)
    Call<ApiResponse<List<ReservationItemResponseBean>>> getBookintTimeList(@Field("cate_id") String cateId);

    /**
     * 获取排期订场列表
     *
     * @param cateId
     * @param date   yyyy-MM-dd
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.PLAN_GETBOOKINGLIST)
    Call<ApiResponse<List<List<ReservationBookItemResponseBean>>>> getBookingList(@Field("cate_id") String cateId, @Field("date") String date);

    /**
     * @param detail_id
     * @param eval_score
     * @param eval_tag
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.STADIUMS_EVALSTADIUM)
    Call<ApiResponse<String>> evalStadium(@Field("detail_id") String detail_id,
                                          @Field("order_id") String order_id,
                                          @Field("eval_score") String eval_score,
                                          @Field("eval_tag") String eval_tag);

    /**
     * 评价教练
     *
     * @param detail_id
     * @param eval_score
     * @param eval_tag
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COACH_EVALCOACH)
    Call<ApiResponse<String>> evalCoach(@Field("detail_id") String detail_id,
                                        @Field("eval_score") String eval_score,
                                        @Field("eval_tag") String eval_tag);

    /**
     * 获得订单标签
     *
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CONFIGS_GETTAGLIST)
    Call<ApiResponse<List<EvaTagBean>>> getTagList(@Field("type") String type);

    /**
     * 消息列表
     *
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.MSG_GETMSGLIST)
    Call<ApiResponse<MsgListResponseBean>> getMsgList(@Field("page") String page);

    /**
     * 约战列表
     *
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.MATCH_GETMATCHLIST)
    Call<ApiResponse<MatchResponseBean>> getMatchList(@Field("page") String page);

    /**
     * 约战详情
     *
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.MATCH_GETMATCHINFO)
    Call<ApiResponse<MatchResponseBean.Info>> getMatchInfo(@Field("order_id") String order_id);

    /**
     * @param token
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_GETUSERTAGLIST)
    Call<ApiResponse<UserTagResponseBean>> getUserTagList(@Field("token") String token);

    /**
     * 设置用户头像
     *
     * @param base64Url
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_SETUSERIMG)
    Call<ApiResponse<Object>> setUserImg(@Field("base64Url") String base64Url);

    /**
     * 预约集体课
     *
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COURSE_ENROLLCOURSE)
    Call<ApiResponse<String>> enrollCourse(@Field("id") String id);

    /**
     * 用户token换取私教id
     *
     * @param token
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIVBER_GETCOACHID)
    Call<ApiResponse<String>> getCoachId(@Field("token") String token);

    /**
     * 评价成员
     *
     * @param member_id 用户id
     * @param tag_list  用户标签（格式为标签id和'，'拼接的：1,2,3,4）
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_EVALUSER)
    Call<ApiResponse<String>> evalUser(@Field("member_id") String member_id,
                                       @Field("order_id") String order_id,
                                       @Field("tag_list") String tag_list);

    /**
     * 评价战队
     *
     * @param order_id
     * @param tag_list
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_EVALCRORPS)
    Call<ApiResponse<String>> evalCorps(@Field("order_id") String order_id,
                                        @Field("tag_list") String tag_list);

    /**
     * 私教统计
     *
     * @param token
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.COACH_COACHCOUNT)
    Call<ApiResponse<StatisticsResponseBean>> coachCount(@Field("token") String token);

    /**
     * 成员信息
     *
     * @param member_id
     * @param corps_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CORPS_GETMEMBERINFO)
    Call<ApiResponse<UserTagResponseBean>> getMemberInfo(@Field("member_id") String member_id,
                                                         @Field("corps_id") String corps_id);

    /**
     * @param hobby_type
     * @param hobby_adcode
     * @param hobby_time
     * @param ismsg
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_SAVEHOBBY)
    Call<ApiResponse<String>> saveHobby(@Field("hobby_type") String hobby_type,
                                        @Field("hobby_adcode") String hobby_adcode,
                                        @Field("hobby_time") String hobby_time,
                                        @Field("ismsg") String ismsg);

    /**
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_GETFIGHTMEMBERLIST)
    Call<ApiResponse<List<MemberListResponseBean.Item>>> getFightMemberList(@Field("order_id") String order_id);

    /**
     * 拼单列表
     *
     * @param type
     * @param time
     * @param adcode
     * @param category_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_GETYPORDERLIST)
    Call<ApiResponse<FellowListResponseBean>> getYPOrderList(@Field("type") String type,
                                                             @Field("time") String time,
                                                             @Field("adcode") String adcode,
                                                             @Field("category_id") String category_id,
                                                             @Field("select_type") String select_type);

    /**
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_GETYPACTIVITYINFO)
    Call<ApiResponse<MatchResponseBean.Info>> getYPActivityInfo(@Field("order_id") String order_id);

    /**
     * 获取排期订单
     *
     * @param place_id
     * @param stime
     * @param etime
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.PLAN_GETPLANORDER)
    Call<ApiResponse<Object>> getPlanOrder(@Field("place_id") String place_id,
                                           @Field("stime") String stime,
                                           @Field("etime") String etime);

    /**
     * @param unionid
     * @param login_type
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.SUBSCRIBER_APPGETLOGIN)
    Call<ApiResponse<WxLoginBean>> appGetLogin(@Field("unionid") String unionid,
                                               @Field("login_type") String login_type);

    /**
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.STADIUMS_GETSTADIUMBANNERINFO)
    Call<ApiResponse<StadiumBannerInfoBean>> getStadiumBannerInfo(@Field("id") String id);

    /**
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_APPWXPAY)
    Call<ApiResponse<WxPayBean>> appWxpay(@Field("order_id") String order_id);

    /**
     * 战队成员活动报名
     *
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.MATCH_ENROLLMATCHACTIVITY)
    Call<ApiResponse<String>> enrollMatchActivity(@Field("order_id") String order_id);

    /**
     * @param card_id
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.CARD_GETMATCHCARDINFO)
    Call<ApiResponse<StadiumCardResponsebean>> getMatchCardInfo(@Field("card_id") String card_id);

    /**
     * 活动历史
     *
     * @param card_id
     * @param page
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.MATCH_GETMATCHACTIVITYHISTORY)
    Call<ApiResponse<ActivityHistoryResponseBean>> getMatchActivityHistory(@Field("corps_id") String card_id,
                                                                           @Field("page") String page);

    /**
     * 留言
     *
     * @param order_id
     * @param message
     * @return
     */
    @FormUrlEncoded
    @POST(IConstants.ORDERS_LEAVEMESSAGE)
    Call<ApiResponse<ActivityHistoryResponseBean>> leaveMesssage(@Field("order_id") String order_id,
                                                                 @Field("message") String message);
}
